package com.learn.excel.api.sys;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.api.R;
import com.learn.excel.core.domain.Response;
import com.learn.excel.core.util.BeanUtils;
import com.learn.excel.hawkeye.modules.sys.model.SysFile;
import com.learn.excel.hawkeye.modules.sys.model.pojo.dto.SysFileDTO;
import com.learn.excel.hawkeye.modules.sys.model.pojo.vo.SysFileVO;
import com.learn.excel.hawkeye.modules.sys.service.SysFileService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 文件表 前端控制器
 * </p>
 *
 * @author zxy
 * @since 2022-09-15
 */
@RestController
@RequestMapping("/sys/sysFile/")
public class SysFileController {
    @Resource
    private SysFileService sysFileService;

    @GetMapping("list")
    public Response<List<SysFileVO>> list(){
        List<SysFile> list = sysFileService.list();
        List<SysFileVO> sysFileVOList = new ArrayList<>();
        BeanUtils.copyList(list,sysFileVOList,SysFileVO.class);

        return Response.success(sysFileVOList);
    }

    @PostMapping("edit")
    public Response<SysFileVO> edit(@RequestBody SysFileDTO sysFileDTO){
        SysFile sysFile = sysFileService.getById(sysFileDTO.getId());
        SysFileVO sysFileVO = new SysFileVO();
        BeanUtils.copyBean(sysFile,sysFileVO);
        sysFileVO.setFileData(JSONArray.parseArray(sysFile.getFileContent()));
        return Response.success(sysFileVO);
    }

    @PostMapping("save")
    public Response save(@RequestBody SysFileDTO sysFileDTO){
        System.out.println(sysFileDTO);
        SysFile sysFile = new SysFile();
        sysFile.setFileName(sysFileDTO.getFileName());
        sysFile.setFileContent(sysFileDTO.getFileContent());
        if(sysFileDTO.getId()!=null){
            sysFile.setId(sysFileDTO.getId());
            sysFileService.updateById(sysFile);
        }else{
            sysFileService.save(sysFile);
        }

        return Response.success();
    }

    @PostMapping("open")
    public Response<JSONArray> open(@RequestBody SysFileDTO sysFileDTO){
        SysFile sysFile = sysFileService.getById(sysFileDTO.getId());

        System.out.println(sysFile.getFileContent());
        JSONArray jsonArray = JSONArray.parseArray(sysFile.getFileContent());

        return Response.success(jsonArray,"success");
    }

}

